In a multiple-subchannel, non-coherent, binary frequency shift keyed (FSK) receiver, one method of making symbol decisions for each subchannel is to compare the energy in the information band above the subchannel carrier frequency to the energy in the information band below the subchannel carrier frequency. Because it is possible for the subchannel carrier frequency to drift off center by a substantial amount relative to the amount of signal deviation, some technique must be used to estimate the subchannel carrier frequency.
One method of estimating the subchannel carrier frequency in a Fast Fourier Transform (FFT) based receiver has been to average a predetermined number of successive FFTs and to estimate the subchannel carrier frequency to be located at the center of energy for each subchannel. This has been accomplished by forming a vector containing a pointwise sum of the magnitudes squared of the predetermined number of past FFTs, and then convolving a rectangular windowing function of predetermined width over the vector to determine a frequency index at the center of the rectangle, which index maximizes the output of the convolution.
Unfortunately, this technique is highly sensitive to noise and to any imbalance in the types of symbols transmitted. In a binary FSK system, for example, if the numbers of "ones" and "zeros" transmitted are not identical, the center of energy for the subchannel will be skewed to one side of the true carrier frequency. The carrier frequency estimate made by the rectangular windowing function will then be erroneous, and symbol decisions made therefrom can be degraded.
Thus, what is needed is a method and apparatus that will provide an improved estimate of the carrier frequency in the presence of an imbalance in the types of symbols transmitted. Such a method and apparatus is needed to provide a higher accuracy of symbol decoding.